The latter half of the twentieth century has been witness to a phenomenon known as the information revolution. While the information revolution is a historical development broader in scope than any one event or machine, no single device has come to represent the information revolution more than the digital electronic computer. The development of computer systems has surely been a revolution. Each year, computer systems grow faster, store more data, and provide more applications to their users.
Early computer systems were very expensive and difficult to use, capable of being programmed and manipulated by only a handful of highly-educated specialists. The cost of operating such computers was correspondingly high, and they were therefore used for only the most essential tasks. The dynamic which has driven the information revolution is the sustained reduction in the cost of computing. Thus, information which was too expensive to gather, store and process a few years ago, is now economically feasible to manipulate via computer. The reduced cost of information processing drives increasing productivity in a snowballing effect, because product designs, manufacturing processes, resource scheduling, administrative chores, and many other factors, are made more efficient.
The cost of information processing not only includes the cost of computer hardware and software, but perhaps even more significantly, the cost of human resources devoted to gathering and processing information using computer systems. Improvements to the usability of computer hardware and software reduce the cost of human resources associated with information processing, either by reducing the amount of time directly devoted to a particular task by a human operator (user), or by reducing the level of training required of a user in order to achieve proficiency in performing the task. Continued progress of the information revolution requires still further improvements to the usability of computer systems.
Today, most computers are not isolated, but are connected to some type of network or networks which allow them to share information with other computer systems. This is also a logical consequence of the information revolution, for information is most useful when it is shared. The Internet is but one example of a computer network. Many computers used in commercial business environments are connected via local area networks or other means to other computers used by the same business enterprise, so that fellow workers may communicate with each other. In many environments, this is an essential part of their respective jobs.
Instant messaging is a type of computer application which is designed to facilitate communication among multiple computer users attached to a network, such as the Internet. Instant messaging may be implemented in various ways, but in general it supports the sending and receiving of instant messages to and from other users. Instant messages are messages which appear on the computer display of the recipient more or less instantly after being sent, subject only to transmission delays, processing delays, and the like, as opposed to more traditional e-mail messages, which typically are logged until the recipient wishes to view them. This characteristic gives instant messaging a more spontaneous, conversational quality than traditional e-mail, and thus helps to provide an alternative form of communication using computers attached to a network. Such applications may be used by a variety of users, from groups of individuals working closely together on some critical project, to more casual users at home who simply want to see who is available to receive a message immediately.
One of the functions typically provided by instant messaging applications is to inform the user whether selected other users are currently available to receive instant messages (or, for that matter, available to receive more traditional communications, such as telephone calls). Typically, each user maintains a list of other users with whom to exchange instant messages. In general, instant messaging applications check whether a user on the list is logged on (connected) to the network, and if so, the user is deemed to be at his workstation, available to receive instant messages. This simple logic may be sufficient in some circumstances, e.g., where the user is connected from home via a modem, and will usually disconnect (log off) when finished using the computer. But in a business environment, this assumption is frequently inaccurate. Many business computers are connected to their respective networks when the user is not present at the computer. It is common practice to log on in the morning, remain logged on all day, and log off on leaving for the day. During that time, the user may be in meetings, at lunch, or otherwise unavailable. It is even common practice to remain logged on after leaving for the day.
Some instant messaging applications allow a user to manually set his status as “unavailable” notwithstanding the fact that he is logged on, but users frequently forget to set status, or don't know about this option, or find it too bothersome to use. Additionally, it is known to report that the user is unavailable if the workstation is in a locked state, or there has been no input for a predetermined amount of time. However, these methods still have problems with accuracy, and fail to provide much useful information. An unrecognized need exists for a more automatic method for determining whether the user is available, which will predict availability with greater accuracy than current methods, and provide a greater amount of useful information to others concerning a user's availability.